﻿'''
题目描述
VLAN是一种对局域网设备进行逻辑划分的技术，为了标识不同的VLAN，引入VLAN ID(1-4094之间的整数)的概念。
定义一个VLAN ID的资源池(下称VLAN资源池)，资源池中连续的VLAN用开始VLAN-结束VLAN表示，不连续的用单个整数表示，所有的VLAN
用英文逗号连接起来。
现在有一个VLAN资源池，业务需要从资源池中申请一个VLAN，需要你输出从VLAN资源池中移除申请的VLAN后的资源池。
输入描述
第一行为字符串格式的VLAN资源池，第二行为业务要申请的VLAN，VLAN的取值范围为[1,4094]之间的整数。
输出描述
从输入VLAN资源池中移除申请的VLAN后字符串格式的VLAN资源池，输出要求满足题目描述中的格式，并且按照VLAN从小到大升序输出。
如果申请的VLAN不在原VLAN资源池内，输出原VLAN资源池升序排序后的字符串即可。
示例1
输入
1-5
2
输出
1,3-5
说明
原VLAN资源池中有VLAN 1、2、3、4、5，从资源池中移除2后，剩下VLAN 1、3、4、5，按照题目描述格式并升序后的结果为1,3-5
示例2
输入
20-21,15,18,30,5-10
15
输出
5-10,18,20-21,30
说明
原VLAN资源池中有VLAN 5、6、7、8、9、10、15、18、20、21、30，从资源池中移除15后，资源池中剩下的VLAN为 5、6、7、8、9、10、
18、20、21、30，按照题目描述格式并升序后的结果为5-10,18,20-21,30。
示例3
输入
5,1-3
10
输出
1-3,5
说明
原VLAN资源池中有VLAN 1、2、3，5，申请的VLAN 10不在原资源池中，将原资源池按照题目描述格式并按升序排序后输出的结果为1-3,5。
解题思路
VLAN（虚拟局域网）是一种网络技术，用来对局域网中的设备进行逻辑划分。每个VLAN通过一个 VLAN ID 来标识，取值范围是 1 到 
4094 的整数。题目中的任务是处理一个字符串格式的 VLAN 资源池，模拟从资源池中申请并移除某个 VLAN，然后返回剩余的资源池。
任务：
输入
包含两个部分：
VLAN资源池：用字符串表示，可能是单个 VLAN ID，或者是多个 VLAN ID 或 VLAN ID 范围（用"-"连接），各个VLAN或范围之间用
逗号连接。
要申请的 VLAN：一个需要移除的 VLAN ID。
输出
从资源池中移除申请的 VLAN 后，输出剩余的 VLAN 资源池，按从小到大的顺序排列，且格式必须符合题目的描述。
输出格式：
连续的 VLAN ID 应该用范围的方式表示，如 1-5 表示 VLAN 1, 2, 3, 4, 5。
不连续的 VLAN ID 用逗号分隔，如 1,3-5。
示例分析：
示例 1：
输入：
1-5
2
解释：
原始资源池有 VLAN 1, 2, 3, 4, 5。
申请的 VLAN 是 2，所以移除 2 后，剩下的 VLAN 是 1, 3, 4, 5。
格式化输出为：1,3-5。
示例 2：
输入：
20-21,15,18,30,5-10
15
解释：
原始资源池有 VLAN 5, 6, 7, 8, 9, 10, 15, 18, 20, 21, 30。
申请的 VLAN 是 15，移除 15 后，剩下的 VLAN 是 5, 6, 7, 8, 9, 10, 18, 20, 21, 30。
格式化输出为：5-10,18,20-21,30。
示例 3：
输入：
5,1-3
10
解释：
原始资源池有 VLAN 1, 2, 3, 5。
申请的 VLAN 是 10，不在资源池中，所以资源池保持不变。
格式化输出为：1-3,5。
'''
#输入描述：
#第一行为字符串格式的VLAN资源池，第二行为业务要申请的VLAN，VLAN的取值范围为[1,4094]之间的整数。
#输出描述
#从输入VLAN资源池中移除申请的VLAN后字符串格式的VLAN资源池，输出要求满足题目描述中的格式，并且按照VLAN从小到大升序输出。
#如果申请的VLAN不在原VLAN资源池内，输出原VLAN资源池升序排序后的字符串即可。
#示例：
#输入：
#20-21,15,18,30,5-10
#15
#输出：
#5-10,18,20-21,30

#读取第一行输入
vlan = input()
#读取第二行输入
request_vlan = int(input())
#按'，'分割vlan
vlan_group = vlan.split(',')
#将所有vlan组拆分为数字，如5-10：5，6，7，8，9，10
new_vlan_group = []
for sub_vlan in vlan_group:
    #包含'-'
    if '-' in sub_vlan:
        new_sub_vlan = sub_vlan.split('-')
        start = int(new_sub_vlan[0])
        end = int(new_sub_vlan[1])
        for i in range(start, end + 1):
            new_vlan_group.append(i)
    #不包含'-'
    else:
        new_vlan_group.append(int(sub_vlan))

#对所有vlan id 排序
new_vlan_group.sort()
#判断申请的id是否在列表
if request_vlan in new_vlan_group:
    new_vlan_group.remove(request_vlan)
#按格式输出结果
last_vlan = None
result = []
for index in range(len(new_vlan_group)):
    #第一个vlan
    if last_vlan == None:   
        result.append(str(new_vlan_group[index]))
        #注意更新last vlan
        last_vlan = new_vlan_group[index]
        continue
    #如果当前的vlan与上一个相连
    if new_vlan_group[index] == last_vlan + 1:
        #result结尾为'- id'
        if result[-1].endswith('-' + str(last_vlan)):
            result[-1] = result[-1][:result[-1].rindex(str(last_vlan))] + str(new_vlan_group[index])
        #否则：加上'- id'
        else:
            result[-1] += '-' + str(new_vlan_group[index])
    #如果不相连
    else:
        result.append(',' + str(new_vlan_group[index]))
    #注意要更新last vlan
    last_vlan = new_vlan_group[index]   
#输出
#result为['5-10', ',18', ',20-21', ',30']，所以需要分割转换为正确输出
print(''.join(result))